package com.hnevn.newslist;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;

import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
//  初始化控件
    ListView mLvItem;
    MyAdapter myAdapter;
    List<NewBean.ResultBean.DataBean> list = new ArrayList<>();
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        数据
        initData();
//        绑定控件
        initView();
    }

    private void initData() {
//      创建链接地址
        String url = "http://v.juhe.cn/toutiao/index?type=top&key=368cf096b8c3c4b53dbc664c686b3a6d";
//      创建请求体
        RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
//        请求主体 第一个参数:请求方式,第二个参数:连接地址,第三个参数:请求方法体(可写可不写),第四个第五个参数分别表示成功响应监听和失败响应监听
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject jsonObject) {
//              实例化gosn
                Gson gson = new Gson();
//                将响应的成功的服务器端放回json数据映射到实体类中
                NewBean newBean = gson.fromJson(jsonObject.toString(),NewBean.class);
                Log.e(TAG,"initData:"+newBean.getResult().getData().size());
//                将实体类中data的数据添加到list集合中
                list.addAll(newBean.getResult().getData());
//                适配器
                myAdapter = new MyAdapter(MainActivity.this,list);
                mLvItem.setAdapter(myAdapter);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
//                如果网络请求失败将执行这一步
                Toast.makeText(MainActivity.this, "网络请求失败", Toast.LENGTH_SHORT).show();
            }
        });
//      加入网络队列
        requestQueue.add(jsonObjectRequest);
    }

    private void initView() {
        //        绑定控件
        mLvItem = findViewById(R.id.lv_item);
    }

}